// 1.封装基础地址
// 2.处理参数
// 3.加全局功能 加 Loading
// 4.状态码的判断 并进行相应的逻辑处理
// 5.请求头的设置

// 1.定义一个基础地址
const base_url = 'https://pcapi-xiaotuxian-front-devtest.itheima.net/'

let app:any=getApp()

export let request = (params) => {
	let url = base_url+params.url;   //基础地址+/api/list的接口
	let method = params.method || 'get'
	let data = params.data || {}
	let header = {}
	//请求参数的判断
	if (method == 'post') {
		//请求头的类型
		header = {
			'Content-Type': "application/json"
		}
	}
	// token的判断  获取storage里的token
	if (uni.getStorageSync("token")) {
		header['Authorization'] =uni.getStorageSync("token");
	}
	
	// if(app?.globalData?.token){
	// 	header['Authorization']=app.globalData.token
	// }
	
	// 抛出Promise
	return new Promise((resolve, reject) => {
		uni.request({
			url,
			method,
			data,
			header,
			success: res => {
				// const res=res
				let code = res.statusCode
				if (code == 200) {
					resolve(res.data)
				} else {
					// 清缓存
					uni.clearStorageSync()
					switch (code) {
						case 401:  //提示没有权限
							uni.showModal({
								title: '提示',
								content: '请登录',
								success: function (res) {
									if (res.confirm) {  //点登录了
										console.log('用户点击确定');

										// 登录之后就跳转登录页面
										uni.navigateTo({
											url: '/pages/login/login'
										})

									} else if (res.cancel) {  //点取消了
										console.log('用户点击取消');

										//提示取消信息
										uni.showToast({
											title: '用户点击了取消',
											duration: 2000   //提示的延迟时间
										});

									}
								}
							})
							break;
						case 404:
							uni.showToast({
								title: "请求地址不存在"
							})
							break;
						default:
							uni.showToast({
								title: "请重试……"
							})
							
					}
				}
			},
			fail:(err)=>{
				reject(err)
			},
			complete:()=>{
				uni.hideLoading()
				uni.hideToast()
			}
		})
	})
}



